// pages/goods_list/index.js
import { request } from "../../request/index.js"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 父向子传递的数据
    tabs: [
      {
        id: 0,
        value: "综合",
        isAlive: true
      },
      {
        id: 1,
        value: "销量",
        isAlive: false
      },
      {
        id: 2,
        value: "价格",
        isAlive: false
      }
    ],

    // 商品数据
    goodsList: []
  },

  // 调用接口所需参数
  QueryParams: {
    query: "",
    cid: "",
    pagenum: 1,
    pagesize: 10
  },

  // 记录总页数
  pageTotal: 1,

  // 处理tabs标签点击切换事件, 接受子组件传递的数据
  handleItemChange (e) {
    const { index } = e.detail;
    let tabs = JSON.parse(JSON.stringify(this.data.tabs));
    tabs.forEach((v, i) => {
      i === index ? v.isAlive = true : v.isAlive = false;
    });
    this.setData({ tabs })
  },

  // 获取商品列表数据
  async getGoodsList () {
    const res = await request({
      url: "/goods/search",
      data: this.QueryParams
    })

    // 计算并保存总页数
    const { total } = res;
    this.pageTotal = Math.ceil(total / this.QueryParams.pagesize);
    // console.log(this.pageTotal);

    this.setData({
      goodsList: [...this.data.goodsList, ...res.goods]
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options);
    this.QueryParams.cid = options.cid;
    this.getGoodsList();
  },

  /**
   * 触底函数
   */
  onReachBottom () {
    if (this.QueryParams.pagenum >= this.pageTotal) {
      wx.showToast({
        title: '没有更多商品!'
      });
    } else {
      this.QueryParams.pagenum++;
      this.getGoodsList();
    }
  },

  /**
   * 下拉函数
   */
  onPullDownRefresh () {
    // 1. 重置数组
    this.setData({
      goodsList: []
    })
    // 2. 重置页码
    this.QueryParams.pagenum = 1;
    // 3. 重新发起请求
    this.getGoodsList();
    // 4. 关闭下拉刷新的等待效果 如果没有调用下拉刷新窗口使用以下函数是不会报错的
    wx.stopPullDownRefresh();
  }
})